#ifndef SOS_VM_INCLUDE_H
#define SOS_VM_INCLUDE_H



/* Common preamble for all virtual memory */
#include <assert.h>
#include <sel4/sel4.h>

#include "../ut_manager/ut.h"
#include "../frametable.h"
#include "../macros.h"
#include "../picoro.h"
#include "../task.h"
#include "../vmem_layout.h"

#include "../debug.h"
#define verbose SOS_DEBUG_PAGETABLE
#include <sys/debug.h>
#include <sys/panic.h>

#include "../pagetable.h"
#include "pt_list.h"
#include "region.h"

/* Indexing macros */
/* Pass in a proc_vaddr, get that address's PAGE TABLE INDEX in the page dir */
#define PAGE_TABLE(x)       (((x) & 0xFFC00000) >> 22)
/* Pass in a proc_vaddr, get that address's PTE INDEX in the page table */
#define PAGE_TABLE_ENTRY(x) (PAGE_SHIFT((x) & 0x003FF000))

#endif // SOS_VM_INCLUDE_H
